﻿//INotificationService.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Algo.Notification
{
	using System;
	using System.ServiceModel;

	/// <summary>
	/// Интерфейс к сервису отправки нотификаций на телефон или почту.
	/// </summary>
	[ServiceContract(Namespace = "http://stocksharp.com/services/notificationservice.svc")]
	public interface INotificationService
	{
		/// <summary>
		/// Подключиться к сервису.
		/// </summary>
		/// <param name="login"></param>
		/// <param name="password"></param>
		/// <returns>Идентификатор сессии.</returns>
		[OperationContract]
		Guid Login(string login, string password);

		/// <summary>
		/// Отключиться от сервиса.
		/// </summary>
		/// <param name="sessionId">Идентификатор сессии.</param>
		/// <returns>Код результата выполнения.</returns>
		byte Logout(Guid sessionId);

		/// <summary>
		/// Послать SMS-сообщение.
		/// </summary>
		/// <param name="sessionId">Идентификатор сессии.</param>
		/// <param name="message">Тело сообщения.</param>
		/// <returns>Код результата выполнения.</returns>
		[OperationContract]
		byte SendSms(Guid sessionId, string message);

		/// <summary>
		/// Послать email-сообщение.
		/// </summary>
		/// <param name="sessionId">Идентификатор сессии.</param>
		/// <param name="caption">Заголовок сообщения.</param>
		/// <param name="message">Тело сообщения.</param>
		/// <returns>Код результата выполнения.</returns>
		[OperationContract]
		byte SendEmail(Guid sessionId, string caption, string message);
	}
}